﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using QLPhanQuyen.BO;
using QLKetNoi;

namespace QLPhanQuyen.GUI
{
    public partial class ThemNguoiDungForm : Office2007Form
    {
        VaiTroBO VTBO = new VaiTroBO();
        NguoiDungBO NDBO = new NguoiDungBO();
        MaTuTang maNguoiDung = new MaTuTang();
        List<string> NhomNguoiDung = new List<string>(); 


        public ThemNguoiDungForm()
        {
            InitializeComponent();
            AttachKeyDownToControls(this);
            HienThiCmbVaiTro();
            DanhSachNhom();
        }
        /// <summary>
        /// Hiển thị danh sách combobox vai trò
        /// </summary>
        public void HienThiCmbVaiTro()
        {
            cmbVaiTro.DataSource = VTBO.DanhSachVaiTro();
            cmbVaiTro.ValueMember = "MaVaiTro";
            cmbVaiTro.DisplayMember = "TenVaiTro";
        }
        private void DanhSachNhom()
        {
            NhomNguoiDung.Add("Admin");
            NhomNguoiDung.Add("Nhân Viên");
            for(int i=0; i<NhomNguoiDung.Count(); i++)
            {
                cmbNhom.Items.Add(NhomNguoiDung[i]);
            }
            cmbNhom.SelectedIndex = 0;
        }

        /// <summary>
        /// ẩn các lable lỗi khi không có lỗi phát sinh
        /// </summary>
        private void XoaLableLoi()
        {
            lblLoiNhanVien.Visible = false;
            lblLoiTaiKhoan.Visible = false;
            lblLoiMatKhau.Visible = false;
            lblLoiXacNhan.Visible = false;
        }
        /// <summary>
        /// Kiểm tra các textbox nhập liệu có bị null
        /// </summary>
        /// <returns></returns>
        private bool KiemTraTextBox()
        {
            bool kiemtra = true;
            if (txtNhanVien.Text == "")
            {
                lblLoiNhanVien.Visible = true;
                kiemtra = false;
            }
            if(txtTaiKhoan.Text == "")
            {
                lblLoiTaiKhoan.Visible = true;
                kiemtra = false;
            }
            if(txtMatKhau.Text == "")
            {
                lblLoiMatKhau.Visible = true;
                kiemtra = false;
            }
            if(txtXacNhan.Text.Equals(txtXacNhan.Text) == false)
            {
                lblLoiXacNhan.Visible = true;
                kiemtra = false;
            }
            return kiemtra;    
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnLuu_Click(object sender, EventArgs e)
        {
            NGUOIDUNG ND = new NGUOIDUNG();
            ND.MaNguoiDung      = MaTuTang.MaTiepTheo(NDBO.MaCaoNhat(), "ND");
            ND.TenNguoiDung     = txtNhanVien.Text;
            ND.TaiKhoan         = txtTaiKhoan.Text;
            ND.MatKhau          = txtMatKhau.Text;
            ND.MaVaiTro         = cmbVaiTro.SelectedValue.ToString();
            ND.NhomNguoiDung    = NhomNguoiDung[cmbNhom.SelectedIndex];
            ND.DienGiai         = txtDienGiai.Text;
            ND.TrangThai        = chkConQuanLy.Checked;

            XoaLableLoi();

            if (KiemTraTextBox() == true)
            {
                if(NDBO.KiemTraTonTai(txtTaiKhoan.Text)==true)
                {
                    lblLoiTaiKhoan.Visible = true;
                }
                else
                {
                    if (NDBO.ThemNguoiDung(ND))
                        MessageBox.Show("Thêm Người Dùng Thành công");
                    else
                        MessageBox.Show("Thêm Người Dùng Thất Bại");
                }
                
            }
        }

        void AttachKeyDownToControls(Control ccoll)
        {
            foreach (Control c in ccoll.Controls)
            {
                if (0 < c.Controls.Count)
                {
                    AttachKeyDownToControls(c);
                }
                else
                {
                    c.KeyDown += c_KeyDown;
                }
            }
        }

        void c_KeyDown(object sender, KeyEventArgs e)
        {
            Control c = sender as Control;
            switch (e.KeyCode)
            {
                case Keys.Enter:
                    c.Parent.SelectNextControl(c, true, true, true, true);
                    e.Handled = true;
                    break;
            }
        }
      
        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
            this.Dispose();
        }

        private void btnThemVaiTro_Click(object sender, EventArgs e)
        {
            ThemVaiTroForm frm = new ThemVaiTroForm();
            frm.Show();
        }
    }
}
